Dynamic problem (algorithms)

Dynamic problems in computational complexity theory are problems stated in terms of the changing input data. In the most general form a problem in this category is usually stated as follows:

Problems of this class have the following measures of complexity

The overall set of computations for a dynamic problem is called a dynamic algorithm.

Many algorithmic problems stated in terms of fixed input data (called static problems in this context and solved by static algorithms) have meaningful dynamic versions.

Online algorithms present a special case of dynamic algorithms, in which only additions of elements are allowed, possibly starting from the empty/trivial input data.

Contents

Examples

Maximal element

Static problem 
For a set of N numbers find the maximal one.

The problem may be easily solved in O(N) time.

Dynamic problem 
For an initial set of N numbers, dynamically maintain the maximal one when insertion and deletions are allowed.

A well-known solution for this problem is using a self-balancing binary search tree. It takes space O(N), may be initially constructed in time O(N log N) and provides insertion, deletion and query times in O(log N).

The priority queue maintenance problem 
It is a simplified version of this dynamic problem, where one requires to delete only the maximal element. This version may do with simpler data structures.

Graphs

Given a graph, maintain its parameters, such as connectivity, maximal degree, shortest paths etc., when insertion and deletion of its edges are allowed.[1]

See also

References

  1. ^ D. Eppstein, Z. Galil, and G. F. Italiano. "Dynamic graph algorithms". In CRC Handbook of Algorithms and Theory of Computation, Chapter 22. CRC Press, 1997.